package br.com.diego.system.controller.cadastrousuario;

import br.com.diego.system.entity.usuario.Usuario;
import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;

public class UsuarioVo {
    
    private Long id = null;
    
    private Integer version = null;
    
    private String nome = "";
    
    private TipoVo tipoVo;
    
    private List<SelectItem> tipoList = new ArrayList<SelectItem>();
    
    private SituacaoVo situacaoVo;
    
    private List<SelectItem> situacaoList = new ArrayList<SelectItem>();
    
    private String email = "";
    
    private String senha = "";   

    public UsuarioVo(Usuario usuario) {
        this();
        setId(usuario.getId());
        setVersion(usuario.getVersion());
        setNome(usuario.getNome());
        setEmail(usuario.getEmail());
        setTipoVo(TipoVo.valueOf(usuario.getTipo().name()));
        setSituacaoVo(SituacaoVo.valueOf(usuario.getSituacao().name()));
        setSenha(usuario.getSenha());
    }
    
    public UsuarioVo() {    
        for (TipoVo tipoUsuarioVo : TipoVo.values()) {
            SelectItem selectItem = new SelectItem(tipoUsuarioVo, tipoUsuarioVo.getDescricao());
            tipoList.add(selectItem);
        }
        
        for (SituacaoVo situacaoUsuarioVo : SituacaoVo.values()) {
            SelectItem selectItem = new SelectItem(situacaoUsuarioVo, situacaoUsuarioVo.getDescricao());
            situacaoList.add(selectItem);
        }
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public List<SelectItem> getSituacaoList() {
        return situacaoList;
    }

    public void setSituacaoList(List<SelectItem> situacaoList) {
        this.situacaoList = situacaoList;
    }

    public SituacaoVo getSituacaoVo() {
        return situacaoVo;
    }

    public void setSituacaoVo(SituacaoVo situacaoVo) {
        this.situacaoVo = situacaoVo;
    }

    public List<SelectItem> getTipoList() {
        return tipoList;
    }

    public void setTipoList(List<SelectItem> tipoList) {
        this.tipoList = tipoList;
    }

    public TipoVo getTipoVo() {
        return tipoVo;
    }

    public void setTipoVo(TipoVo tipoVo) {
        this.tipoVo = tipoVo;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

}
